• improvements to the core animation engine to better handle inactive sprites.
• two new (though very incomplete) sample games.
• fast pixel blitting routines for 8 bit color.
• minor bug fixes, minor interface changes.
• and some additional odd & ends.
Refer to the release notes for a more detailed change history.
I would like to extend a heartfelt thanks to all of the folks that have been giving me great feedback on SpriteWorld over the last few weeks. I have tried to incorporate as many suggestions as I could into this release. Some did get left behind, but hopefully they will make it into the next release.
I also would like to apologize for taking so long to get this incompelete release out the door. Many things have happened in my life since the release of SpriteWorld. Not the least of which is that I landed a *great* new job. Please note that my AppleLink address will no longer be valid. Please use one of the other e-mail addresses listed at the end of this document.
SpriteWorld is a sprite-based animation architecture for the Macintosh. SpriteWorld comes as a set of code libraries and interfaces that provide a simple, but rich API for implementing smooth, fast, animation in your applications. In the interest of openness and learning, the full source code to the SpriteWorld libraries and sample applications is provided. SpriteWorld was designed for arcade game style animation in particular with full support for multi-frame, overlapping, animated sprites, and custom pixel-blitting routines.
SpriteWorld has been an ongoing project of mine to bring together all information I could find about doing animation on the Macintosh. All those little tidbits, tech notes, articles, code snippets, deep dark secrets and such, have been distilled into SpriteWorld. Each piece of information was tested for validity, and then either incorporated or tossed out. Along the way I have learned many things, and found the truth behind many myths. Which is REALLY faster CopyBits or CopyMask? Just how much difference does it REALLY make to long-word align your rect for CopyBits? Just how hard is it to replace CopyBits, and is it worth it? SpriteWorld is not yet, and will never be 100% complete, there is always more information out there. If you know where it is be sure and send it to me so that SpriteWorld can become that much better.
This SpriteWorld package includes full source code, documentation, sample code, and libraries.
Here is a short description of the contents of each of the folders contained in this package.
• Projects
This folder contains the THINK C project files for the SpriteWorld Libraries.
• Libraries
This folder contains the THINK C libraries that your application can link with to use SpriteWorld.
• Sources
This folder contains the C source code files for SpriteWorld.
• Headers
This folder contains the C header files that you will want to #include in your application’s source files.
• Examples
This folder contains four sample applications that demonstrate how to use SpriteWorld.
Simple - This is the best example to start out with when learning SpriteWorld. It show a *very* straightforward and simple use of SpriteWorld. The steps are laid out one by one so that you may get your own animations up and going with a minimal of effort after perusing this sample.
SpriteTest - This is the test bed that I use to test/develop SpriteWorld. It isn’t meant to be a great code example itself, so if you see something skanky don’t freak out. It is constantly changing so you can never be sure what you will find in here. Right now it is set up to test some custom pixel-blitting, and collision detection code.
SimpleBreakOut - This is a simple little game sample. This sample is incomplete in this release. It is modeled after the classic game of "BreakOut". Concepts that this sample demonstrates are: collision detection, using a large number of inactive sprites in an animation, simple custom move procs, etc.
SpaceRocks - This is a more complicated game sample. This sample is incomplete in this release. It is modeled after the classic game of "Asteroids". Concepts that this sample demonstrates are: extending the sprite record, collision detection, inserting and removing sprites from an animation on the fly, using custom pixel blitters, complex custom move procs, frame change procs, etc.
The only thing I ask for in exchange for SpriteWorld, is a free copy (that is make me a fully paid, registered user) of any cool game that you write with SpriteWorld.